package hos.map.coordinate;

/**
 * <p>Title: CoordinateType </p>
 * <p>Description:  </p>
 * <p>Company: www.mapuni.com </p>
 *
 * @author : 蔡俊峰
 * @version : 1.0
 * @date : 2023-12-07 22:25
 */
public enum CoordinateType {
    bd09mc("bd09mc", 102100),//（百度墨卡托坐标）
    gcj02("gcj02", 102113),//（经国测局加密的坐标）
    wgs84("wgs84", 4326),//（gps获取的原始坐标）
    common("common", 102113);//（google地图、高德地图、腾讯地图、搜狗地图）

    // 成员变量
    private final String name;
    private final int id;

    CoordinateType(String name, int id) {
        this.name = name;
        this.id = id;
    }

    /**
     * 从坐标名称获取坐标类型
     * @param typeName 坐标名称
     * @return 坐标类型
     */
    public static CoordinateType form(String typeName) {
        if (CoordinateType.bd09mc.name.equals(typeName)) {
            return CoordinateType.bd09mc;
        }
        if (CoordinateType.gcj02.name.equals(typeName)) {
            return CoordinateType.gcj02;
        }
        if (CoordinateType.common.name.equals(typeName)) {
            return CoordinateType.common;
        }
        return CoordinateType.wgs84;
    }

    /**
     * 坐标名称
     * @return 坐标名称 bd09mc gcj02 wgs84 common(google地图、高德地图、腾讯地图、搜狗地图)
     */
    public String getName() {
        return name;
    }

    /**
     * 获取坐标 id
     * @return 4326 102113 102100
     */
    public int getId() {
        return id;
    }
}
